package com.puti.doctor.domian;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.puti.common.core.annotation.Excel;
import com.puti.common.core.web.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

public class GoodsOrderVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long orderId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String orderPatientId;

    /** 商品ID */
    @Excel(name = "商品ID")
    private String orderGoodsId;

    /** 商品购买属性 0：正常购买
     1：秒杀活动 */
    @Excel(name = "商品购买属性 0：正常购买1：秒杀活动")
    private Long orderGoodsAttributes;

    /** 商品购买数量 */
    @Excel(name = "商品购买数量")
    private Long orderGoodsCount;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal orderOldprice;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private BigDecimal orderNewprice;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 订单状态 0：等待付款
     1：等待发货
     2：申请退款
     3：交易成功 */
    @Excel(name = "订单状态 0：等待付款1：等待发货2：申请退款3：交易成功")
    private Long orderStatus;

    /** 支付状态 0：未支付
     1：已支付 */
    @Excel(name = "支付状态 0：未支付1：已支付")
    private Long orderPayStatus;

    /** 发货状态 0：未发货
     1：已发货 */
    @Excel(name = "发货状态 0：未发货1：已发货")
    private Long orderShipStatus;

    /** 收货状态 0：未收货
     1：已收货 */
    @Excel(name = "收货状态 0：未收货1：已收货")
    private Long orderReceiptStatus;

    @Excel(name = "收货状态 0：未收货1：已收货")
    private Long orderEvaluationStatus;

    @Excel(name = "售后状态 0：未申请售后1：处理中2：处理完成")
    private Long orderAftersalesStatus;

    @Excel(name = "平台确认商品状态 0：未确认收到货1：已确认收到货")
    private Long orderConfirmReceipt;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    public GoodsOrderVo(Long orderId, String orderPatientId, String orderGoodsId, Long orderGoodsAttributes, Long orderGoodsCount, BigDecimal orderOldprice, BigDecimal orderNewprice, Date orderTime, Long orderStatus, Long orderPayStatus, Long orderShipStatus, Long orderReceiptStatus, Long orderEvaluationStatus, Long orderAftersalesStatus, Long orderConfirmReceipt, Date startTime, Date endTime) {
        this.orderId = orderId;
        this.orderPatientId = orderPatientId;
        this.orderGoodsId = orderGoodsId;
        this.orderGoodsAttributes = orderGoodsAttributes;
        this.orderGoodsCount = orderGoodsCount;
        this.orderOldprice = orderOldprice;
        this.orderNewprice = orderNewprice;
        this.orderTime = orderTime;
        this.orderStatus = orderStatus;
        this.orderPayStatus = orderPayStatus;
        this.orderShipStatus = orderShipStatus;
        this.orderReceiptStatus = orderReceiptStatus;
        this.orderEvaluationStatus = orderEvaluationStatus;
        this.orderAftersalesStatus = orderAftersalesStatus;
        this.orderConfirmReceipt = orderConfirmReceipt;
        this.startTime = startTime;
        this.endTime = endTime;
    }


    @Override
    public String toString() {
        return "goodsOrderVo{" +
                "orderId=" + orderId +
                ", orderPatientId='" + orderPatientId + '\'' +
                ", orderGoodsId='" + orderGoodsId + '\'' +
                ", orderGoodsAttributes=" + orderGoodsAttributes +
                ", orderGoodsCount=" + orderGoodsCount +
                ", orderOldprice=" + orderOldprice +
                ", orderNewprice=" + orderNewprice +
                ", orderTime=" + orderTime +
                ", orderStatus=" + orderStatus +
                ", orderPayStatus=" + orderPayStatus +
                ", orderShipStatus=" + orderShipStatus +
                ", orderReceiptStatus=" + orderReceiptStatus +
                ", orderEvaluationStatus=" + orderEvaluationStatus +
                ", orderAftersalesStatus=" + orderAftersalesStatus +
                ", orderConfirmReceipt=" + orderConfirmReceipt +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                '}';
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderPatientId() {
        return orderPatientId;
    }

    public void setOrderPatientId(String orderPatientId) {
        this.orderPatientId = orderPatientId;
    }

    public String getOrderGoodsId() {
        return orderGoodsId;
    }

    public void setOrderGoodsId(String orderGoodsId) {
        this.orderGoodsId = orderGoodsId;
    }

    public Long getOrderGoodsAttributes() {
        return orderGoodsAttributes;
    }

    public void setOrderGoodsAttributes(Long orderGoodsAttributes) {
        this.orderGoodsAttributes = orderGoodsAttributes;
    }

    public Long getOrderGoodsCount() {
        return orderGoodsCount;
    }

    public void setOrderGoodsCount(Long orderGoodsCount) {
        this.orderGoodsCount = orderGoodsCount;
    }

    public BigDecimal getOrderOldprice() {
        return orderOldprice;
    }

    public void setOrderOldprice(BigDecimal orderOldprice) {
        this.orderOldprice = orderOldprice;
    }

    public BigDecimal getOrderNewprice() {
        return orderNewprice;
    }

    public void setOrderNewprice(BigDecimal orderNewprice) {
        this.orderNewprice = orderNewprice;
    }

    public Date getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(Date orderTime) {
        this.orderTime = orderTime;
    }

    public Long getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Long orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Long getOrderPayStatus() {
        return orderPayStatus;
    }

    public void setOrderPayStatus(Long orderPayStatus) {
        this.orderPayStatus = orderPayStatus;
    }

    public Long getOrderShipStatus() {
        return orderShipStatus;
    }

    public void setOrderShipStatus(Long orderShipStatus) {
        this.orderShipStatus = orderShipStatus;
    }

    public Long getOrderReceiptStatus() {
        return orderReceiptStatus;
    }

    public void setOrderReceiptStatus(Long orderReceiptStatus) {
        this.orderReceiptStatus = orderReceiptStatus;
    }

    public Long getOrderEvaluationStatus() {
        return orderEvaluationStatus;
    }

    public void setOrderEvaluationStatus(Long orderEvaluationStatus) {
        this.orderEvaluationStatus = orderEvaluationStatus;
    }

    public Long getOrderAftersalesStatus() {
        return orderAftersalesStatus;
    }

    public void setOrderAftersalesStatus(Long orderAftersalesStatus) {
        this.orderAftersalesStatus = orderAftersalesStatus;
    }

    public Long getOrderConfirmReceipt() {
        return orderConfirmReceipt;
    }

    public void setOrderConfirmReceipt(Long orderConfirmReceipt) {
        this.orderConfirmReceipt = orderConfirmReceipt;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
}
